//package com.cjl.open.retrofit.download;
//
//import okhttp3.MediaType;
//import okhttp3.ResponseBody;
//import okio.*;
//import org.jetbrains.annotations.NotNull;
//import org.jetbrains.annotations.Nullable;
//
//import java.io.IOException;
//
//public class DownloadResponseBody extends ResponseBody {
//    private final ResponseBody responseBody;
//    private BufferedSource bufferedSource;
//
//    public DownloadResponseBody(ResponseBody responseBody,DownLoadListener listener) {
//        this.responseBody = responseBody;
//        if (listener != null){
//            listener.onStart(responseBody);
//        }
//    }
//
//    @Override
//    public long contentLength() {
//        return responseBody.contentLength();
//    }
//
//    @Nullable
//    @Override
//    public MediaType contentType() {
//        return responseBody.contentType();
//    }
//
//    @NotNull
//    @Override
//    public BufferedSource source() {
//        if (bufferedSource == null){
//            bufferedSource = Okio.buffer(getSource(responseBody.source()));
//        }
//        return null;
//    }
//
//    private Source getSource(Source source) {
//        return new ForwardingSource(source) {
//            long downLoadBytes = 0L;
//
//            @Override
//            public long read(@NotNull Buffer sink, long byteCount) throws IOException {
//                long singleRead =  super.read(sink, byteCount);
//                if (singleRead != -1){
//                    downLoadBytes += singleRead;
//                }
//                return singleRead;
//            }
//        };
//    }
//}
